//==========================================================================
// Copyright (c) 2000-2009,  Elastos, Inc.  All Rights Reserved.
//==========================================================================
#ifndef __CGRAFIXOBJECTENUMERATOR_H__
#define __CGRAFIXOBJECTENUMERATOR_H__

#include <engine.h>

#define _NO_CGRAFIXOBJECTENUMERATOR_CLASSOBJECT_
#include "_CGrafixObjectEnumerator.h"

CarClass(CGrafixObjectEnumerator)
{
public:
    ~CGrafixObjectEnumerator();

    Void *operator new(size_t size, Void* pv) { return pv; }

    Void *operator new(size_t size) { return malloc(size); }

    Void operator delete(Void* pv) { free(pv); }

    ECode Initialize(
        /* [in] */ Handle32 appletId,
        /* [in] */ CGrafixEngine * pEngine);

public:
    CARAPI Current(
        /* [out] */ PInterface * ppObject);

    CARAPI MoveNext(
        /* [out] */ Boolean * pSucceeded);

    CARAPI Reset();

public:
    CGrafixEngine * m_engine;
    Int32 m_current;
    FusionVector * m_grafixObjects;
    Boolean * m_changed;
    Int32 m_appletId;
};

#endif // __CGRAFIXOBJECTENUMERATOR_H__
